package nullObject;

/**
 * @Author: Ma JiBin
 * @Email: 1423553596@qq.com
 * @Date: 2018/9/13 15:53
 * @Description: 客户对象工厂类
 * 基于客户传递的名字来返回 RealCustomer 或 NullCustomer 对象
 */
public class CustomerFactory {
    /**
     * 客户名数组
     */
    public static final String[] names = {"Rob", "Joe", "Julie"};

    /**
     * 如果在names数组中匹配到传递的Name，则返回非空对象，
     * 否则返回空对象
     * @param name 客户名称
     * @return 返回客户对象
     */
    public static AbstractCustomer getCustomer(String name) {
        for (int i = 0; i < names.length; i++) {
            if (names[i].equalsIgnoreCase(name)) {
                return new RealCustomer(name);
            }
        }
        return new NullCustomer();
    }
}
